MovieClip.curveTo()

Доступность

Flash Player 6.

Синтаксис

my_mc.curveTo(controlX:Number, controlY:Number, anchorX:Number, anchorY:Number) : Void

Параметры

controlX Число, определяющее горизонтальную позицию контрольной точки относительно точки регистрации родительского мувиклипа.

controlY Число, определяющее вертикальную позицию контрольной точки относительно точки регистрации родительского мувиклипа.

anchorX Число, определяющее горизонтальную позицию следующей якорной (anchor) точки относительно точки регистрации родительского мувиклипа.

anchorY Число, определяющее вертикальную позицию следующей якорной (anchor) точки относительно точки регистрации родительского мувиклипа.

Возвращает

Ничего.

Описание

Метод; рисует кривую, используя текущие установки для свойств линии от текущего положения "пера" (drawing position) до точки (anchorX, anchorY), используя контрольную точку с координатами (controlX, controlY). Затем текущее положение "пера" устанавливается в точку (anchorX, anchorY). Если мувиклип, в котором Вы рисуете, содержит контент, созданный при помощи инструментов рисования Flash, линии, нарисованные при помощи curveTo() рисуются ниже этого контента. Если вы вызовите curveTo() до вызова moveTo(), позицией "пера" будет его позиция по умолчанию в точке (0, 0). Если хотя бы один из параметров опущен, метод не работает и текущее положение "пера" не изменяется..

Вы можете расширять методы и обработчики событий класса MovieClip, создавая его подклассы. Для более подробной информации смотри "Присвоение класса мувиклип-символу " в Использовании ActionScript во Flash.

Пример

В примере ниже рисуется круг с синей обводкой и красной заливкой:

this.createEmptyMovieClip("circle_mc", 1);
with (circle_mc) {
  lineStyle(0, 0x0000FF, 100);
  beginFill(0xFF0000);
  moveTo(500, 500);
  curveTo(600, 500, 600, 400);
  curveTo(600, 300, 500, 300);
  curveTo(400, 300, 400, 400);
  curveTo(400, 500, 500, 500);
  endFill();
}

Кривая, нарисованная в данном примере, является квадратической кривой Безье. Квадратические кривые Безье состоят из двух якорных и одной контрольной точки. Кривая проходит через якорные точки и огибает контрольную.

Следующий код рисует круг, используя метод MovieClip.curveTo() и Класс Math:

this.createEmptyMovieClip("circle2_mc", 2);
circle2_mc.lineStyle(0, 0x000000);
drawCircle(circle2_mc, 10, 10, 100);
function drawCircle(mc:MovieClip, x:Number, y:Number, r:Number):Void {
  mc.moveTo(x+r, y);
  mc.curveTo(r+x, Math.tan(Math.PI/8)*r+y, Math.sin(Math.PI/4)*r+x, Math.sin(Math.PI/4)*r+y);
  mc.curveTo(Math.tan(Math.PI/8)*r+x, r+y, x, r+y);
  mc.curveTo(-Math.tan(Math.PI/8)*r+x, r+y, -Math.sin(Math.PI/4)*r+x, Math.sin(Math.PI/4)*r+y);
  mc.curveTo(-r+x, Math.tan(Math.PI/8)*r+y, -r+x, y);
  mc.curveTo(-r+x, -Math.tan(Math.PI/8)*r+y, -Math.sin(Math.PI/4)*r+x, -Math.sin(Math.PI/4)*r+y);
  mc.curveTo(-Math.tan(Math.PI/8)*r+x, -r+y, x, -r+y);
  mc.curveTo(Math.tan(Math.PI/8)*r+x, -r+y, Math.sin(Math.PI/4)*r+x, -Math.sin(Math.PI/4)*r+y);
  mc.curveTo(r+x, -Math.tan(Math.PI/8)*r+y, r+x, y);
}

Этот пример также находится в файле drawingapi.fla в папке HelpExamples. Следующий список показывает наиболее часто встречающиеся местоположения этой папки:

См. также

MovieClip.beginFill(), MovieClip.createEmptyMovieClip(), MovieClip.endFill(), MovieClip.lineStyle(), MovieClip.lineTo(), MovieClip.moveTo()